//
//  NSTools.h
//  Fotile
//
//  Created by xtmac on 23/2/16.
//  Copyright © 2016年 xtmac. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef struct CalendarDate{
    UInt16  year;
    UInt8   month;
    UInt8   day;
    UInt8   hour;
    UInt8   minute;
    UInt8   second;
}CalendarDate;

@interface NSTools : NSObject
/**
 *  将时间拆分成年月日时分秒的结构体
 *
 *  @param date 时间
 *
 *  @return 年月日时分秒的结构体
 */
+(CalendarDate)dateToCalendar:(NSDate *)date;

/**
 *  将年月日时分秒的结构体转换成nsdate
 *
 *  @param calendarDate 年月日时分秒的结构体
 *
 *  @return NSDate 时间
 */
+(NSDate *)calendarToDate:(CalendarDate)calendarDate;

+(NSString *)dataToHex:(NSData *)data;

+(NSData *)hexToData:(NSString *)hexString;

/**
 *  判断文件是否存在
 *
 *  @param checkFile 文件路径
 *
 *  @return 文件是否存在
 */
+(BOOL) fileIsExists:(NSString*) checkFile;

/**
 *  邮箱正则表达式
 *
 *  @param email 邮箱地址
 *
 *  @return 是否正确的邮箱地址
 */
+(BOOL)validateEmail:(NSString *)email;

/**
 *  手机号码正则表达式
 *
 *  @param phone 手机号码
 *
 *  @return 是否正确的手机号码
 */
+(BOOL)validatePhone:(NSString *)phone;

/**
 *  判断密码强度 必须字母加数字 6位以上
 *
 *  @param password 密码
 *
 *  @return 通过返回YES
 */
+ (BOOL)validatePassword:(NSString *)password;

/**
 *  创建一个随机的唯一字符串
 *
 *  @return string
 */
+ (NSString *)createUniqueString;

/**
 *  MD5计算
 *
 *  @param str 输入的字符串
 *
 *  @return md5之后的大写字符串
 */
+ (NSString *)md5:(NSString *)str;

/**
 *  判断是否获取相册权限
 *
 *  @return 是否获取相册权限
 */
+ (BOOL)isGetPhotoLibraryAuthorized;

/**
 *  判断是否获取相机权限
 *
 *  @return 是否获取相册权限
 */
+ (BOOL)isGetCameraAuthorized;

/**
 *  验证是否为16进制字符串
 *
 *  @param str 传入字符串
 *
 *  @return 是否是16进制字符串
 */
+ (BOOL)isHexadecimalString:(NSString *)str;
/**
 *  压缩图片
 *
 *  @param img 传入图片
 *  @param size 尺寸
 *
 *  @return UIImage
 */
+ (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size;

@end
